﻿// ===============================================================================
// IMarkupLocater.cs
// EOS Wen Framework
// ===============================================================================
// Copyright (c) EOS Development Group. All rights reserved.
// ===============================================================================

namespace EOS.Framework.Web.Mvc
{
    using System;
    using System.IO;

    /// <summary>
    /// Contract for all Markup Locaters. A Markup Locater is responsible for locating
    /// a markup for a container.
    /// </summary>
    public interface IMarkupLocator
    {
        /// <summary>
        /// Locates an markup.
        /// </summary>
        /// <param name="containerType">Type of the container, which markup should be located.
        /// Cannot be null.</param>
        /// <param name="cache">The markup cache. Needed for efficient loading.</param>
        /// <returns>The loaded markup.</returns>
        /// <exception cref="ArgumentNullException"><paramref name="containerType"/> is null (Nothing in Visual Basic).</exception>
        IMarkup LocateMarkup(Type containerType, IMarkupCache cache);
    }
}
